// 路由鉴权：鉴权，项目中路由的权限管理（路由在某种条件下可被访问和不可被访问）
import router from './index.ts'
import nprogress from 'nprogress'
import '../../node_modules/nprogress/nprogress.css'

import { useUserStore } from '@/store/user/user.ts'
import pinia from '@/store/index.ts'
const userStore = useUserStore(pinia)
// console.log(userStore);

// 全局守卫：任意路由切换都会触发的钩子

// 全局前置守卫
router.beforeEach(async (to: any, from: any, next: any) => {
  nprogress.start()

  // 用户登录与否判断是否放行
  // 已登陆

  if (userStore.token) {
    // 登陆成功后不能访问login，应该跳转至首页
    if (to.path == '/login') {
      next({ path: '/' })
    } else {
      next()
    }
  } else {
    //未登录
    if (to.path == '/login') {
      next()
    } else {
      next({ path: '/login', query: { redirect: to.path } })
    }
  }

  // next()
})

// 全局后置守卫
router.afterEach((to: any, from: any) => {
  nprogress.done()
})

// 1、nprogress 进度条效果
// 2、路由鉴权（路由组件访问权限的设置）
// 3、全部路由组件：登录|404|任意路由|首页|数据大屏|权限管理(三个子路由)|商品管理(四个子路由）

// 业务逻辑
// 未登录:可以访问login,其余六个路由不能访问[重定向至login]
// 已登录:不可访问login[重定向至首页],其余的路由可以访问
